# define _CRT_SECURE_NO_WARNINGS
//喝水问题
//喝汽水，1瓶汽水1元，2个空瓶可以换一瓶汽水，给20元，可以喝多少汽水（编程实现）。
//#include<stdio.h>
//int D_problem(int money,int sum,int empty)
//{ 
//	while (empty>1)
//	{
//		sum += empty / 2;
//		empty = empty / 2 + empty % 2;
//	}
//	return sum;
//}
//int main()
//{
//	int money = 20;
//	int sum = money;
//	int empty = money;
//	 int total=D_problem(money,sum,empty);
//	printf("%d \n",total);
//	return 0;
//}

//用C语言在屏幕上输出以下图案：
//菱形
//#include<stdio.h>
//void Print(int line)
//{
//	for (int i = 0; i < line; i++)
//	{
//		for (int j = 0; j < line - 1 - i; j++)
//		{
//			printf(" ");
//		}
//		for (int j = 0; j < 2 * i + 1; j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	for (int i = 0; i < line-1; i++)
//	{
//		for (int j = 0; j <  1 + i; j++)
//		{
//			printf(" ");
//		}
//		for (int j = 0; j <2*(line-1-i)-1 ; j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//}
//int main()
//{
//	int line =7;
//	Print(line);
//	return 0;
//}


//求出0～100000之间的所有“水仙花数”并输出。
//
//“水仙花数”是指一个n位数，其各位数字的n次方之和确好等于该数本身，
//如 : 153＝1 ^ 3＋5 ^ 3＋3 ^ 3，则153是一个“水仙花数”。

//#include<stdio.h>
//#include<math.h>
//void Func()
//{
//	for (int n = 0; n <= 100000; n++)
//	{
//		int sum = 0;
//		int a = n;
//		while (a)
//		{
//			sum++;
//			a =a / 10;
//		}
//		a = n;
//		int total = 0;
//		while (a)
//		{
//			total+=pow(a % 10, sum);
//			a = a / 10;
//		}
//		if (total == n)
//			printf("%d ", n);
//	}
//}
//int main()
//{
//		Func();
//	return 0;
//}


//求Sn = a + aa + aaa + aaaa + aaaaa的前5项之和，其中a是一个数字，
//
//例如：2 + 22 + 222 + 2222 + 22222
//
//#include<stdio.h>
//int Sum(int a)
//{
//	int sum = 0;
//	int num = 0;
//	for (int i = 0; i < 5; i++)
//	{
//		num= 10 * num+ a;
//		sum += num;
//	}
//	return sum;
//}
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	int ret=Sum(a);
//	printf("%d ", ret);
//	return 0;
//}

//99乘法表
//#include<stdio.h>
//void Form()
//{
//	for (int i = 1; i <=9; i++)
//	{
//		for (int j = 1; j <= i; j++)
//		{
//			printf("%d*%d=%2d   ", j, i, i * j);
//		}
//		printf("\n");
//	}
//}
//int main()
//{
//	Form();
//	return 0;
//}

//#include<stdio.h>
//void Table(int a)
//{
//	for (int i = 1; i <= a; i++)
//	{
//		for (int j = 1; j <= i; j++)
//		{
//			printf("%d*%d=%2d  ", j, i, i * j);
//		}
//		printf("\n");
//	}
//}
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	Table(a);
//	return 0;
//}

//}
//输入数字 n，按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3，则打印出 1、2、3 一直到最大的 3 位数 999。
//1. 用返回一个整数列表来代替打印
//2. n 为正整数，0 < n <= 5


#include<stdio.h>
#include<math.h>
static int arr[200000000] = { 0 };
int* printNumbers(int n, int* returnSize)
{
    scanf("%d", &n);
    int i = 0;
    int a = 0;
    a = pow(10, n) - 1;
    for (int i = 0; i < a; i++)
    {
        arr[i] = i + 1;
    }
    *returnSize = i;
    return arr;
}
int main()
{
    int n = 0;
    int* returnSize;
    *printNumbers(n, *returnSize);
    int a = *printNumbers;
    printf("%d ", a);
    return 0;
}